using System;

namespace tutFuelCellGame
{
    public class GameConstants
    {
        public static TimeSpan RoundTime = TimeSpan.FromSeconds(30.25);

        //camera constants
        public const float NearClip = 1.0f;
        public const float FarClip = 1000.0f;
        public const float ViewAngle = 45.0f;

        // fuelcarrier constants
        public const int MaxRange = 98;
        public const float MaxRotationSpeed = .06f; //MathHelper.Pi * 0.75f;
        public const float MaxVelocity = 0.8f;
        public const float Drag = MaxVelocity * 2.5f;
        public const float DragOnTurnImpulse = MaxRotationSpeed * 3f;

        // gamefield constants
        public const int CenterClearRadius = 20;
        public const float BarrierAlphaNormal = 1f;
        public const float BarrierAlphaGameLost = .3f;
        public const float TerrainAlpha = 1f;

        //bounding sphere scaling factors
        public const float FuelCarrierBoundingSphereFactor = .70f;
        public const float FuelCellBoundingSphereFactor = .9f;
        public static float[] BarrierBoundingSphereFactor = new[]{ 1.20f, 1.00f, 1.0f };

        //turns on or off the wireframes that show the boundingspheres
        public static bool DrawWireFrames = false;
        public static bool MusicOn = false;

        // model names
        public const string ModelNameFuelCell = "Models/canister";
        public const string ModelNameShip = "Models/Black Arrow";
        public const string ModelNameBarrierType1 = "Models/Wall_Rounded";
        public const string ModelNameBarrierType2 = "Models/Wall_Rounded_High";
        public const string ModelNameBarrierType3 = "Models/rock_4";

        //strings for the hud and other screens
        public const string StrLevel = "Level: ";
        public const string StrTimeRemaining = "Time Remaining: ";
        public const string StrCellsFound = "Fuel Cells Retrieved: ";
        public const string StrLevelCompleted = "Level completed!";
        public const string StrGameLost = "Game Lost !";
        public const string StrPlayAgain = "Press Space/Start to play again or Esc/Back to quit";
        public const string StrInstructions1 = "Retrieve all Fuel Cells before time runs out.";
        public const string StrInstructions2 = "Control ship using keyboard arrowkeys or the left thumbstick.";
        public const string StrInstructions3 = "F = Toggle FullScreen.";

        internal static void ToggleWireFrames()
        {
            DrawWireFrames = !DrawWireFrames;
        }

        internal static void ToggleMusic()
        {
            MusicOn = !MusicOn;
        }
    }
}